home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
USA Bestseller
/
USA BESTSELLER Vol 1-95 (Hepp-Computer)(1995).iso
/
e032
/
cimage.doc
< prev
next >
Wrap
Text File
|
1993-07-28
|
127KB
|
4,779 lines
The Complete Image v3.11
Copyright 1993, Paul D. Nettle
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
Document dated: July 28, 1993
Paul D. Nettle
9668 Washington St.
Romulus, MI 48174
(313) 941-9223
Author's name: Paul D. Nettle
Author's Compuserve ID: 72163,2442
This document also Copyright 1993, Paul D. Nettle
A limited license is granted to reprint short extracts from
this document as long as credit is given to the above
mentioned party. Individuals, BBSs and User Groups may
distribute copies of this software, it's documentation and
associated files (originally distributed in an archive)
freely as long as the files remain in-tact, unmodified, are
not re-named and are not made part of some larger work
without the written permission of Paul D. Nettle. A BBS may
rearchive the unmodified archived file's contents as long as
the resulting archive is named CIMAGE.ZIP, CIMAGE.ARC,
CIMAGE.LZH or CIMAGE.???
The Complete Image -- Copyright 1993, Paul D. Nettle
TABLE OF CONTENTS
Introduction .............................................4
Ombudsman Statement ......................................5
Definition of Shareware ..................................5
Disclaimer - Agreement ...................................6
Getting Started ..........................................7
Running CImage for the first time ........................8
Configuring CImage .......................................11
Batch files .........................................11
The startup batch file ..............................11
Macros ..............................................11
Environment variables ...............................12
The CImage command line .............................12
External programs interface .........................12
Help file configuration .............................12
Help File Format ...............................12
Filter file configuration ...........................13
Filter File Format ..................................13
Getting CImage to work with your video card .........13
Memory configuration ................................14
Batch Files ..............................................15
IPI File Format ..........................................17
Virtual Memory ...........................................18
Command Reference ........................................20
` (Left single quote) ...............................21
: (Colon) ...........................................22
ADD .................................................23
ASK .................................................24
BIN .................................................25
BIOSINFO ............................................26
BRIGHTEN ............................................27
CONV ................................................28
CPY .................................................30
CRES ................................................31
DARKEN ..............................................32
DIVIDE ..............................................33
ECHO ................................................34
EXIT ................................................35
FADE ................................................36
FILL ................................................37
FILTERFILE ..........................................38
FLIP ................................................39
FREE ................................................40
GAMMA ...............................................41
GAMV ................................................42
GOTO ................................................43
GREYSCALE ...........................................44
IF ..................................................45
LB ..................................................46
LC ..................................................47
LOAD ................................................48
MACRO ...............................................49
MEM .................................................51
Page 2
The Complete Image -- Copyright 1993, Paul D. Nettle
MERGE ...............................................52
MULTIPLY ............................................53
NEGATE ..............................................54
NOISE ...............................................55
NORMALIZE ...........................................56
OVERLAY .............................................57
PAUSE ...............................................58
PERCENT .............................................59
PIX .................................................60
PLASMA ..............................................61
PMOD ................................................62
REM .................................................63
SAVE ................................................64
SET .................................................65
SHOW ................................................66
SUBTRACT ............................................67
TERRAIN .............................................68
VCOLORS .............................................69
VESAINFO ............................................70
VMODE ...............................................72
Future Enhancements ......................................74
Contacting Customer Support ..............................75
Ordering Information .....................................76
What you will get when you register .................76
Differences between non-registered and registered
users ...............................................76
Page 3
The Complete Image -- Copyright 1993, Paul D. Nettle
INTRODUCTION
Thank you for choosing "The Complete Image." I hope that
this product will be as useful for you as it was fun for me
to write. I'll try to keep this document from being dry, so
forgive me if the jokes get bad.
To use CImage, you will be expected to have a basic
understanding of DOS. Having a basic understanding of DOS
batch files and environment variables will help in
understanding CImage equivalents.
CImage also requires at least a 386. A math co-processor is
optional, but recommended. 2MB of memory is also required
(although 4 is better, and any more is just great).
From now on "The Complete Image" will be known as CImage.
(I like to pronounce it "simage").
CImage is a full-featured image processor. Take a look:
o Reads and writes GIF, IMG, TGA, BMP and IPI image
files.
o An interface for external programs to perform tasks
that CImage doesn't already perform via the IPI
file format -- explained later in this document.
o Very extensive on-line help. The help file is a
simple ASCII text file so that you may modify it to
add your external programs, batch files, macros and
whatever else you may want information on.
o Batch files, Macros, Environment variables
(separate from DOS's) that allow complete
customization of CImage.
o Image arithmetic functions (adding, subtracting,
multiplying and dividing images).
o Filters, filters filters... Count them up, and you
have over 100 filters! The filters are defined in
an ASCII text file, so you can add your own.
o Works on ALL video cards. VESA compatibility with
versions up to 1.2 VBE. You have the choice of the
built-in 256 color drivers, VESA, or BIOS.
o Memory. CImage uses ALL available memory by
running in protected mode. If you need more
memory, you can turn on the Virtual Memory.
I hope you enjoy using CIMAGE!
Page 4
The Complete Image -- Copyright 1993, Paul D. Nettle
OMBUDSMAN STATEMENT
This program is produced by a member of the Association of
Shareware Professionals (ASP). ASP wants to make sure that
the Shareware principle works for you. If you are unable to
resolve a Shareware-related problem with an ASP member by
contacting the member directly, ASP may be able to help. The
ASP Ombudsman can help you resolve a dispute or problem with
an ASP member, but does not provide technical support for
members' products. Please write to the ASP Ombudsman at 545
Grover Road, Muskegon, MI 49442-9427 USA, FAX 616-788-2765
or send a Compuserve message via CompuServe Mail to ASP
Ombudsman 70007,3536.
DEFINITION OF SHAREWARE
Shareware distribution gives users a chance to try software
before buying it. If you try a Shareware program and
continue using it, you are expected to register. Individual
programs differ on details -- some request registration
while others require it, some specify a maximum trial
period. With registration, you get anything from the simple
right to continue using the software to an updated program
with printed manual.
Copyright laws apply to both Shareware and commercial
software, and the copyright holder retains all rights, with
a few specific exceptions as stated below. Shareware authors
are accomplished programmers, just like commercial authors,
and the programs are of comparable quality. (In both cases,
there are good programs and bad ones!) The main difference
is in the method of distribution. The author specifically
grants the right to copy and distribute the software, either
to all and sundry or to a specific group. For example, some
authors require written permission before a commercial disk
vendor may copy their Shareware.
Shareware is a distribution method, not a type of software.
You should find software that suits your needs and
pocketbook, whether it's commercial or Shareware. The
Shareware system makes fitting your needs easier, because
you can try before you buy. And because the overhead is
low, prices are low also. Shareware has the ultimate money-
back guarantee -- if you don't use the product, you don't
pay for it.
Page 5
The Complete Image -- Copyright 1993, Paul D. Nettle
DISCLAIMER - AGREEMENT
Users of The Complete Image must accept this disclaimer of
warranty: "The Complete Image is supplied as is. The
author disclaims all warranties, expressed or implied,
including, without limitation, the warranties of
merchantability and of fitness for any purpose. The author
assumes no liability for damages, direct or consequential,
which may result from the use of The Complete Image."
The Complete Image is a "Shareware program" and is provided
at no charge to the user for evaluation. Feel free to share
it with your friends, but please do not give it away altered
or as part of another system. The essence of "user-
supported" software is to provide personal computer users
with quality software without high prices, and yet to
provide incentive for programmers to continue to develop new
products. If you find this program useful and find that you
are using The Complete Image and continue to use The
Complete Image after a reasonable trial period, you must
make a registration payment of 35.00 to Paul D. Nettle. The
35.00 registration fee will license one copy for use on any
one computer at any one time. You must treat this software
just like a book. An example is that this software may be
used by any number of people and may be freely moved from
one computer location to another, so long as there is no
possibility of it being used at one location while it's
being used at another. Just as a book cannot be read by two
different persons at the same time.
Commercial users of The Complete Image must register and pay
for their copies of The Complete Image within 30 days of
first use or their license is withdrawn. Site-License
arrangements may be made by contacting Paul D. Nettle.
Anyone distributing The Complete Image for any kind of
remuneration must first contact Paul D. Nettle at the
address above for authorization. This authorization will be
automatically granted to distributors recognized by the
(ASP) as adhering to its guidelines for Shareware
distributors, and such distributors may begin offering The
Complete Image immediately (However Paul D. Nettle must
still be advised so that the distributor can be kept up-to-
date with the latest version of The Complete Image.).
You are encouraged to pass a copy of The Complete Image
along to your friends for evaluation. Please encourage them
to register their copy if they find that they can use it.
All registered users will receive a copy of the latest
version of The Complete Image system.
Page 6
The Complete Image -- Copyright 1993, Paul D. Nettle
GETTING STARTED
CImage is ready to run. All you have to do is install it.
Installation is simple. Since you've probably downloaded
the CImage archive and un-archived it (which you needed to
do to be reading this document) you're already set to go.
To run CImage, you need to have both, CIMAGE.EXE and
DOS4GW.EXE in your path or in the current directory when you
run it. To run it, just type CIMAGE.
If you're like me, you may already have a very large path,
and wish not to make it larger. Where there is a will,
there is a way! Simply create a batch file that runs CImage
in the following way:
C:\CIMAGE\DOS4GW C:\CIMAGE\CIMAGE %1 %2 %3 %4 %5 %6 %7 %8 %9
This batch file runs DOS/4GW from the CIMAGE directory, and
tells it to run CIMAGE from the same directory. If you just
run CIMAGE, then it will not find the DOS Extender (which is
what it tries to do if you just run CIMAGE). So, you need
to run the DOS Extender manually.
This works great because CImage will look for all batch
files and the filter files in the directory where the
CIMAGE.EXE file is located (if they aren't first found in
the current directory).
Just place that batch file someplace in your path, and
you're all set to go!
Page 7
The Complete Image -- Copyright 1993, Paul D. Nettle
RUNNING CIMAGE FOR THE FIRST TIME
Run CImage by typing CIMAGE (or whatever you named the batch
file you may have created as explained in the previous
section). Note that if you run out of memory during the
following examples, you will need to enable Virtual Memory
(see the section titled VIRTUAL MEMORY). If your system
only has 4MB, I suggest that you do this now. CImage does
require a lot of memory.
You will see your DOS prompt. Notice the small underscore
to the left of your prompt; this is called the "Prompt
modifier". That's so you know you're running CIMAGE. You
can change it with the PMOD command.
Try loading the Demo image that is included by typing:
LOAD DEMO.IPI
As soon as you pressed return, CImage began loading the
image into the first available buffer (number 0 -- the
second buffer is number 1, and so on), showing you a percent
complete as it loads. Sometimes the percents may not quite
reach %100. This is just a simple side effect of integer
math. Don't worry, if you got a prompt again, then you have
completely loaded the image. Typing LB will list the
buffers in use, and DEMO.IPI should be included in this
list. If not, you should have received an error message
during the load.
Next, show it by typing:
SHOW
Since the SHOW command has an optional parameter (for
specifying which buffer to show) which was left out in the
above example, the SHOW command just shows the first buffer
it runs across.
When the image is completely displayed, you'll hear a short
beep. That beep is to remind you that pressing a key will
take you back to the command prompt. When you're done
trying to find this VERY DIM image, press a key.
This demo image is VERY dim...so dim that you monitor may
not even be able to display it (even with the brightness
turned all the way up!). The colors are there, though, and
I can prove it to you. This image needs a contrast
enhancement. So, we use the normalization command:
NORMALIZE. Try typing:
HELP NORMALIZE
You should have received a screen full of information
specific to the NORMALIZE command. Notice at the bottom,
there is a SHORTCUT heading. This means that by typing NORM
Page 8
The Complete Image -- Copyright 1993, Paul D. Nettle
alone (rather than NORMALIZE) you can perform the same
function. Try it:
NORM 0
The Normalization command will place the output of the
normalization into the input buffer unless you tell it
otherwise (see NORM). Once the NORM command has completed,
you can show it again (the result has overwritten the
original image located in buffer 0, so, again, we still
don't need to tell show where to find our image):
SHOW
Now, isn't that better? CImage didn't create any colors.
Those color were all present in that dim image, CImage just
enhanced it for you.
Image processing plays a bigger role in everyday life than
you may think. Did you know that when an X-ray is taken
using 1/4 the normal power (radiation), that the X-Ray comes
out looking black, but that all the information is still
present? Just like that demo image you just normalized.
Some doctors will actually take your X-Ray at 1/4 power,
then digitize the X-Ray so that they can perform a contrast
Normalization on it to view it. This way, you are exposed
to fewer rays of radiation, and you can feel better about
your health!
Back to the tour. Before we do anything to this image,
let's save it. You can save the contents of buffer 0 by
typing:
SAVE 0 PICTURE.IPI
You can use another file format if you want. To specify a
different file format, just change the extension on the
filename to TGA, GIF, BMP or IMG.
Lets try a filter:
CONV LAPLAS3 0
This causes CImage to run a convolution filter called
"LAPLAS3" (located in the CIMAGE.FLT file) on our buffer.
There are two buffers in memory now. To see the second
buffer (buffer 1) use the following command:
SHOW 1
To see how much memory you have available, just type MEM.
It lists the largest available memory block, and how much of
that memory is virtual, or, disk-based memory (explained
later).
Page 9
The Complete Image -- Copyright 1993, Paul D. Nettle
To free up all buffers, just type:
FREE ALL
This will release the buffers from memory. If you have 4MB,
8MB or more, you won't need to do this very often. By the
way, exiting CImage will automatically free all buffers.
To quit CImage, just type:
EXIT
A shortcut for this command is Q. A lot of commands have
shortcuts, don't forget to check out the help file for these
shortcuts.
Page 10
The Complete Image -- Copyright 1993, Paul D. Nettle
CONFIGURING CIMAGE
CImage is very configurable. This section will explain how
to configure CImage for your needs.
Batch files:
As I'm sure you already know, batch files are a great
tool in DOS. The same goes for CImage.
When you create batch files for CImage that you always
want available, place them in the same directory that
you placed the CIMAGE.EXE file. When you try to run
the batch file, if it isn't found in the current
directory, then CImage looks for it in the directory
where CImage was run from. If you place a batch file
of the same name in the current directory, it will
override the one located in the CImage directory. You
may find this useful.
During Startup, CImage will attempt to run the
AUTOEXEC.IPB file (following the same rules for
locating this file as all other batch files.)
The startup batch file:
As mentioned above, CImage will attempt to run the
AUTOEXEC.IPB batch file when it starts. This file is
no different than any other batch file. Here's a list
of good suggestions to place in your AUTOEXEC.IPB file:
VMODE - Set your preferred video mode.
VESAINFO - Configure the video features to use
VESA (if available).
BIOSINFO - Configure the video features to use
the BIOS.
CRES - Set the color resolution for your
video mode.
VCOLORS - Set the number of colors of your
non-standard video mode.
PERCENT - Turn the percentage displays
On/Off.
GAMV - Set the Gamma value of your choice.
MACRO - Set up any shortcut macros.
SET - Configure your environment
variables for image directories and
such.
FILTERFILE - Change the name of the Filter file
(default is CIMAGE.FLT)
For information on any of the above mentioned commands,
just look them up in this document.
Macros:
Page 11
The Complete Image -- Copyright 1993, Paul D. Nettle
Macros are a great way to shortcut a lot of commands.
They allow you to "type" complicated command line tasks
with a single keystroke or with a single word.
Environment variables:
Environment variables are great for specifying paths,
batch file locations, and more. They are really
intended for use in batch files only, but you're
welcome to use them on the command line, however, you
may find them to be rather cryptic to type.
The CImage command line:
The CIMAGE.EXE command line accepts up to nine
parameters. These parameters are passed directly into
your AUTOEXEC.IPB.
You may use this for different startup configurations.
External programs interface:
The .IPI file format was designed to be the simplest
file format available for storing 24-bit images of
unlimited resolutions. This is for those of you that
can program, and would like to add functions to CImage
that it doesn't already perform. Here is an example
batch file that takes advantage of this feature:
SAVE %1 TEMP.IPI
FREE %1
MYPROG TEMP.IPI
LOAD TEMP.IPI %1
DEL TEMP.IPI
This batch file will accept a single parameter for the
buffer number. This buffer is then saved to a
temporary IPI file. We will free the memory it was
using just in case we need to give MYPROG.EXE some
memory. Next, CImage runs MYPROG.EXE from DOS, passing
it TEMP.IPI as a parameter. MYPROG.EXE can do whatever
it wants to TEMP.IPI, then when it's done, CImage will
regain control. Once we're back, we re-LOAD the image,
then delete the temporary file.
If this batch file is placed in the CImage directory,
then this function is available just as if it was built
into CImage!
Help file configuration:
The CIMAGE.HLP file is a simple ASCII file full of
"topics" that are available on-line. If you decide to
add external programs, macros, or whatever else, you
can add these as topics to the help file. The format
is quite simple:
Help File Format:
Page 12
The Complete Image -- Copyright 1993, Paul D. Nettle
1. If the first non-space character on a line is
a semicolon, then that line is ignored ("a
comment").
2. Topics must begin with a : (colon) and the
colon must be placed in very first column on
the line. No spaces may be contained in the
topic, and it must be followed by a new-line.
(":DEMO" -- this is called a "tag") will get
help for the topic "DEMO". CImage will
display all information after the specified
topic's tag until the next tag is found.
Filter file configuration:
CImage has many filters (the most I've ever seen in one
place.) The filters are defined in the file CIMAGE.FLT
(or whatever you may have renamed it with the
FILTERFILE command). You may modify this file as you
wish, adding or removing filters (not that there is a
reason for removing them) at your discretion. The
format is quite simple:
Filter File Format:
1. If the first non-space character on a line is
a semicolon, then that line is ignored ("a
comment").
2. Filters are defined in the following way:
FILTER <filtername> <size>
<upper-left> <upper-center> <upper-right>
<center-left> <center-center> <center-right>
<lower-left> <lower-center> <lower-right>
<operator> <operand> <bias>
Where <filtername> is the name of the filter.
This is where CONV looks for the command line
option <filter>. <size> is the size of the filter
(3, 5 or 7 only, others are ignored). For 5x5 and
7x7 filters, the above example is incomplete,
since from <upper-left> to <lower-right> would be
a 5x5 or 7x7 "grid".
Getting CImage to work with your video card:
You have many options for getting CImage to work with
your video card. Just use the VMODE command to set the
type of video interface you want to use.
First, try VESA. It's the fastest, and allows more
than 256 colors, if your card can handle it. See the
VESAINFO command for more information.
Example:
VMODE VESA
Page 13
The Complete Image -- Copyright 1993, Paul D. Nettle
VESAINFO 101
If you don't have VESA capabilities, then you will
probably want to use the built-in super-VGA drivers.
See the VMODE command for more information on
configuring the video mode.
Example:
VMODE 13
If you have a really weird video card, then you may
have to use the BIOS setting. See the BIOSINFO command
for more information on configuring the BIOS setting.
Example:
VMODE BIOS
BIOSINFO 0x5F 640 480
You may also need to set the CRES or VCOLORS to your
video card's specified settings.
Memory configuration:
CImage uses the DOS/4GW DOS Extender from Rational
Systems. This DOS Extender places CImage into "386
Flat Model" protected mode where the 80386 executes
instructions faster, and has access to LOTS of larger
chunks of memory. With access to all of this memory,
CImage can run faster, and perform more complicated
tasks than it would if it were written for a 286 or
less processor.
Lets assume you have 8 MEG. CImage loads above the
first MEG (this is where most systems keep their faster
memory). As memory is needed, CImage gets it from the
memory above that first MEG. If that runs out, then
CImage starts looking for memory in the DOS 640K area.
DOS's memory is used last because it is usually slower,
and also because CImage can run DOS programs, so you
will want to save as much DOS memory as possible.
Virtual Memory (VMM) is also available (see VIRTUAL
MEMORY).
Note that programs that use Extended or Expanded memory
(like Disk Cache programs) will take memory away from
CImage. You may want to limit the memory that they use
to allow a comfortable amount for both.
Page 14
The Complete Image -- Copyright 1993, Paul D. Nettle
BATCH FILES
DESCRIPTION:
Batch files are used for running a series of commands
in a specific order saving you the trouble of running
them manually; just as if the user were to type the
commands at the command line.
If you are familiar with DOS batch programming, then
you will have no problem adjusting to CImage's batch
programming, since CImage uses the exact same
techniques as DOS with the following exceptions:
1. Currently, CImage does not support the FOR
command
2. There is an ASK command that DOS does not
support. See the ASK command for more help.
3. Currently, ERRORLEVEL is only valid after the
ASK command. Return codes from DOS are not
available in CImage, and CImage does not need
return codes for it's commands.
4. CImage's batch files are named with the .IPB
file extension rather than the .BAT extension
used by DOS.
5. Batch files must be located in the current
directory, CImage does not search the path. If
the .IPB file is still not found, then CImage
will search for the .IPB file in the directory
in which CImage was originally run.
As in DOS, there are nine batch parameters (%1 - %9).
These are used for interpreting parameters passed into
the batch file when it is run. for example, consider
the batch file (called LOADSHOW.IPB):
LOAD %1 %2
SHOW %2
When LOADSHOW is run:
LOADSHOW PICTURE.GIF 0
will interpret as the following:
LOAD PICTURE.GIF 0
SHOW 0
NOTES:
At startup CImage will execute the AUTOEXEC.IPB batch
file. Parameters may be passed into the AUTOEXEC.IPB
file when CImage is run. For example, "CImage
PICTURE.GIF" will run "AUTOEXEC PICTURE.GIF". This is
Page 15
The Complete Image -- Copyright 1993, Paul D. Nettle
useful for running different configurations, for
example.
The only place in CImage where the break key makes any
difference is in batch files. When the break key is
pressed, the current command will not stop, it will
finish, but when CImage goes to the batch file to find
the next command, it will then ask to exit the batch
file or to continue running it.
SEE ALSO:
ASK IF GOTO : REM PAUSE ECHO
Page 16
The Complete Image -- Copyright 1993, Paul D. Nettle
IPI FILE FORMAT
DESCRIPTION:
The IPI (pronounced "ipee") file format is used to
store 24-bit images. This format was designed to be the
simplest to decode for programmers so that they may add
functionality to CImage via external programs.
For example: A developer needs to use CImage to
manipulate some images for his software's title screen.
Assume the interface programs have already been
written. He runs CImage, and from CImage he runs his
program to generate an image, and save it to an IPI
file. Now he tells CImage to load the file, and does
whatever manipulation he needs done. Next, he saves
the file in IPI format. Lastly, he runs his other
interface program to load the IPI file, do some final
changes or modifications, then he saves the image in
his own file format.
With the use of batch files, this process can be
automated. His second interface program can even erase
the IPI file when it's no longer needed, so as not to
clutter up the hard drive.
This prevents the developer from having to write any
GIF encoding or decoding routines, or having to learn
an image format that is more complicated than he would
like. The IPI files are un-compressed, linear RGB
format with a very small header. These files were
meant to be temporary, so they can be rather large. A
640x480 image can be over 900K in size.
The IPI format is as follows:
X resolution (WORD - MSB first)
Y resolution (WORD - MSB first)
Image data:
FOR EACH PIXEL IN THE SCREEN (XRES * YRES)
{
Red Element (BYTE)
Green Element (BYTE)
Blue Element (BYTE)
}
SEE ALSO:
LOAD SAVE MERGE LB
Page 17
The Complete Image -- Copyright 1993, Paul D. Nettle
VIRTUAL MEMORY
DESCRIPTION:
CImage was written with the Watcom C/C++32 9.5 and uses
the DOS/4GW DOS Extender from Rational Systems. This
royalty-free DOS Extender (DOS4GW.EXE) offers a Virtual
Memory Manager (VMM). When CImage runs out of memory,
it can be configured so that it automatically starts
swapping to disk. In this way, you can actually use
more RAM than your computer has!
This configuration MUST take place before CImage is
run. If CImage runs out of memory while running, you
must save what your are doing, exit CImage and
configure for VMM before re-starting CImage.
To enable VMM, you only need to set a single environ-
ment variable. Might I suggest that you create an
CIMAGE.BAT batch file that sets this variable before
running CImage, then clears it afterwards just in case
you're not one for having all these environment
variable hanging around when they aren't (like me)
necessary.
I have found a drawback to using the VMM. It tends to
slows CImage down dramatically, even when not swapping
to disk.
To enable VMM with default values, just "SET DOS4GVM=1"
from within DOS before entering CImage. It's that
simple. But, like all other things, there is a way to
complicate it by configuring it (it's not that bad,
actually).
Usage:
SET DOS4GVM=[option[#value]] [option[#value]]...
(the '#' is used with options that take values since
the DOS command shell will not accept "=")
Setting the DOS4GVM=1 will use default values for all
options. Here are some control options:
MINMEM The minimum amount of RAM managed by
VMM. The default is 512K
MAXMEM The Maximum amount of RAM managed by
VMM. The default is 4MB.
SWAPMIN The minimum or initial size of the swap
file. If this option is not used, the
size of the swap file is based on
VIRTUALSIZE (see below).
SWAPINC The size by which the swap file grows.
SWAPNAME The swap file name. The default name is
"DOS4GVM.SWP". By default the file is
Page 18
The Complete Image -- Copyright 1993, Paul D. Nettle
in the root directory of the current
drive. Specify the complete path name
if you want to keep the swap file on
another drive.
DELETESWAP Whether the swap file is deleted when
CImage exits. By default the file is
NOT deleted. Program startup is quicker
if the file is NOT deleted.
VIRTUALSIZE The size of the virtual memory space
(swap file plus allocated memory). The
default is 16MB.
If you wish to have a temporary swap file, and only use
no more than 4 MEG of RAM, then use the example below:
SET DOS4GVM=DELETESWAP maxmem#8192
NOTE: This DOS Extender is especially advantageous for
programmers. I HIGHLY RECOMMEND the Watcom C/C++32 9.5
compiler to developers. I own Borland C/C++ 3.1,
Microsoft C/C++ 7.0, and Watcom C/C++32 9.5. My choice
development tools are the Watcom Tools (although I hate
to give up the Turbo Debugger). Take the time to learn
them, they are wonderful!
SEE ALSO:
MEM
Page 19
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND REFERENCE
System level commands:
[EXIT/Q/QUIT] [`] [?/HELP] [REM] [ASK] [PAUSE] [ECHO]
[PERCENT]
Batch file processing:
[IF] [IFNOT]
Graphic File Manipulation tools:
[LOAD] [SAVE] [MERGE] [TERRain]
Buffer Manipulation Tools:
[LB] [FREE] [SHOW] [MEM]
Local Environment Variables and Macros:
[VMODE] [VCOLORS] [CRES] [SET] [MACRO] [GAMV]
[BIOSinfo] [VESAinfo]
Image Enhancement tools:
[NEGate] [ADD] [SUBtract] [MULTiply] [DIVide]
[BRIghten] [DARKen] [NOISe] [GREYscale] [NORMalize]
[GAMMa] [CONV] [LC] [PIX] [OVERlay] [BIN]
Image Manipulation tools:
[FLIP] [CPY]
Image Generators:
[FADE] [PLASMA] [FILL]
Page 20
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
` (left single quote)
PURPOSE:
Send a command directly to DOS bypassing the CImage
command processor shell.
SYNTAX:
`<command>
-or-
` <command>
DESCRIPTION:
This is useful for commands like MEM. Since DOS has a
MEM command as well as CImage, you can only run DOS's
MEM by using the `left single quote'.
NOTES:
Another way to perform a similar function is to create
a DOS batch file that runs MEM called M.BAT. This is,
of course, not very practical.
SHORTCUT:
None.
SEE ALSO:
None.
Page 21
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
: (colon)
PURPOSE:
The `colon' is used in batch files only for designating
a label.
SYNTAX:
:<label>
DESCRIPTION:
Labels in Batch files allow the batch file control over
it's flow.
Labels are used in conjunction with the GOTO command to
alter batch program flow.
NOTES:
None.
SHORTCUT:
None.
SEE ALSO:
BATCH ASK IF GOTO REM PAUSE ECHO
Page 22
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
ADD
PURPOSE:
Add the contents of two image buffers.
SYNTAX:
ADD <buf1> <buf2> [outbuf]
DESCRIPTION:
ADD will add, pixel by pixel each of the red, blue and
green components of <buf1> and <buf2> and place the
result into [outbuf].
NOTES:
If [outbuf] is not given, then <buf1> contains the
result.
Upon adding the components, if the two components added
are greater than 255, then the component value is
clipped to 255.
SHORTCUT:
None.
SEE ALSO:
SUBTRACT MULTIPLY DIVIDE
Page 23
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
ASK
PURPOSE:
ASK allows users to input single keystrokes for use
within CImage batch files.
SYNTAX:
ASK <keylist> <string>
DESCRIPTION:
The <keylist> contains all available keys to the user.
For example, a Yes/No question will have a keylist of
`yn'.
The <string> contains the prompt. This is displayed to
the user while ASK waits for a Key.
When ASK completes, ERRORLEVEL will be set according to
the key that was pressed. The ERRORLEVEL starts at 1,
for the first entry in the <keylist> and continues
until the keylist is complete. In the above example,
if the user pressed `y' then the ERRORLEVEL would be 1.
If the user would have pressed `n' then the ERRORLEVEL
would have been 2.
NOTES:
If a key not in the <keylist> was pressed, then
ERRORLEVEL is 0.
SHORTCUT:
None.
SEE ALSO:
BATCH IF
Page 24
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
BIN
PURPOSE:
Binarize a picture with a given threshold.
SYNTAX:
BIN <inbuf> <threshold> [outbuf]
DESCRIPTION:
BIN will compare each of the red, blue and green
components of <inbuf> against <threshold>. If the
component value is less than <threshold> then the
component value is set to zero. If the component value
is greater than or equal to <threshold>, then the
component value is set to 255.
Valid range for <threshold> is 0-255.
NOTES:
If [outbuf] is not given, then <inbuf> contains the
result.
SHORTCUT:
None.
SEE ALSO:
BRIGHTEN DARKEN NORMALIZE GREYSCALE
Page 25
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
BIOSINFO
PURPOSE:
BIOSINFO will set the BIOS graphics settings for
CImage.
SYNTAX:
BIOSINFO <mode> [xres] [yres]
DESCRIPTION:
BIOSINFO will set the current BIOS configuration to be
used for displaying image buffers using the SHOW
command.
By setting the BIOS settings in CImage, CImage can
access virtually any video card that has BIOS support.
Consult your video card's user's manual for information
on the BIOS mode and associated resolutions.
[xres] and [yres] may be omitted for quickly switching
between two different modes of the same resolution.
Default BIOS resolution is 640x480. The default number
of colors is 256 (see note below).
The BIOS is incapable of plotting pixels with more than
256 colors, so if the video mode that you are trying to
access has more than 256 colors, you MUST use the VESA
capabilities. Consult your video card's user's manual
for more information on VESA capabilities that it
supports.
Users must also perform a "VMODE BIOS" to enable the
BIOS mode for displaying image buffers. See the VMODE
command for more information on setting the mode.
TSRs are available to allow ALL video cards VESA
support in software. See the VESAINFO command for more
information on VESA support in CImage.
NOTES:
<mode> must be in HEX.
VESA is the preferred graphics configuration to run.
CImage does not support modes with less than 256
colors.
SHORTCUT:
BIOS
SEE ALSO:
VESAINFO VMODE VCOLORS CRES
Page 26
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
BRIGHTEN
PURPOSE:
Brightens an image buffer.
SYNTAX:
BRIGHTEN <amount> <inbuf> [outbuf]
DESCRIPTION:
BRIGHTEN will increase the brightness of <inbuf> by
<amount>. <amount> is a component value, so the range
is 1-255.
NOTES:
If [outbuf] is not given, then <inbuf> contains the
result.
SHORTCUT:
BRI
SEE ALSO:
DARKEN
Page 27
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
CONV
PURPOSE:
Performs a 3x3, 5x5, or 7x7 convolution filter.
SYNTAX:
CONV <filter> <inbuf> [outbuf]
DESCRIPTION:
Performs a Convolution filter (defined as <filter> in
the filter file (defined by the FILTERFILE command;
default filename is FILTERS.FLT). file) on <inbuf> and
places the result into [outbuf].
CONV perform "convolution" filters. Convolution
filters are a common way of changing an image's
appearance. Some common filters will blur or sharpen
an image, others may highlight edges, or remove all of
the image completely leaving only the edges.
The filters are contained in the filter file.
The Available filters can be obtained with the command
LC (for List Convolutions). See HELP LC for more
information on the LC command.
The filter description format for a 3x3 filter is as
follows:
FILTER <filtername> <size>
<upper-left> <upper-center> <upper-right>
<center-left> <center-center> <center-right>
<lower-left> <lower-center> <lower-right>
<operator> <operand> <bias>
Any text following semicolons are comments
Where <filtername> is the name of the filter. This is
where CONV looks for the command line option <filter>.
<size> is the size of the filter (3, 5 or 7 only,
others are ignored). For 5x5 and 7x7 filters, the
above example is incomplete, since from <upper-left> to
<lower-right> would be a 5x5 or 7x7 "grid".
Convolutions are quite simple. For each pixel in an
image, the filter grid is overlaid onto that pixel and
it's neighbors with the <center-center> element of the
filter grid aligned onto the current pixel in the
image, and the outer elements in the filter grid
overlaying the current pixel's neighbors. The next
step is to multiply each element in the filter grid
with it's corresponding overlaid pixel value. Once
all these values have been calculated, add them
Page 28
The Complete Image -- Copyright 1993, Paul D. Nettle
together and perform the operation (/ 8 for an
<operator> of '/' and an <operand> of '8'.) Lastly,
add the <bias> value. If the addition of <bias> (or
subtraction of <bias> if it is negative) takes the
result above 255 or below 0, then the value is clipped
to 0 or 255, respectively.
A good trick for trying your own is to take a current
filter, copy it, change the new copy's name, and modify
it. If you have problems getting usable resulting
images, try adding all of the values in the filter's
grid and placing that value in <operand> with an
<operator> of '/'
NOTES:
The valid range for <bias> is 0-255.
Valid <operator> values are:
+.......Add <operand>
-.......Subtract <operand>
*.......Multiply by <operand> /.......Divide by
<operand>
M.......Sort all multiplied grid elements, and use
the median. Ignore <operand> -- Operand
MUST still be present
<.......Sort all multiplied grid elements, and use
the lowest. Ignore <operand> -- Operand
MUST still be present
>.......Sort all multiplied grid elements, and use
the highest. Ignore <operand> -- Operand
MUST still be present
If [outbuf] is not given, then CONV will create the
first available buffer.
CImage will search for the filter file in the following
order:
1. The current directory
2. The default CImage directory (where CIMAGE.EXE
is stored)
CAUTION: The median ('M'), dilate ('>') and erode
('<') functions take a LONG TIME in 5x5 or 7x7 filters.
Try to stick with using 3x3 filters for these
operators.
SHORTCUT:
None.
SEE ALSO:
LC FILTERFILE
Page 29
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
CPY
PURPOSE:
Copy an image buffer to another.
SYNTAX:
CPY <inbuf> [outbuf]
DESCRIPTION:
CPY will copy <inbuf> into [outbuf], creating [outbuf]
in the process. [outbuf] must not exist.
NOTES:
If [outbuf] is not given, then CPY will create the
first available buffer.
CPY was not named "COPY" because of obvious
interference with the DOS COPY command.
SHORTCUT:
None.
SEE ALSO:
None.
Page 30
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
CRES
PURPOSE:
Sets the color bit resolution for 256 color VGA
graphics.
SYNTAX:
CRES [value]
DESCRIPTION:
When CImage needs to display a 24-bit image onto a 256
color display, CImage needs to reduce the number of
colors that the image uses. This is by sorting colors
by popularity, choosing the most popular, and mapping
the rest of the colors to it's closest counterpart in
the list of the top 256.
When CImage needs to display an image, it needs to know
how many shades of red, green, and blue the video card
allows. Most cards allow for 6 bits of resolution (0-
63, or 64) for each element. To calculate how many
displayable colors, multiply red * green * blue, or
64*64*64 = 262,144. This is the number of colors
possible, however only 256 colors are allowed
simultaneously. CRES tells CImage how many shades the
video card allows for each element so that CImage can
reduce the number of shades as well as the number of
colors.
NOTES:
If [value] is not given, then CRES will display the
current value.
CImage does not support modes with less than 256
colors.
When CImage loads or creates an image buffer, it is
stored internally as a 24-bit image. Even if CImage
loads a 256-color GIF file, it is still converted to
24-bits as it is loaded. This is because modifications
to an image buffer may increase the number of colors
that it uses. This also allows for CImage to perform
functions on image buffers with the least amount of
accuracy loss.
SHORTCUT:
None.
SEE ALSO:
VESAINFO BIOSINFO VMODE VCOLORS CRES SHOW
Page 31
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
DARKEN
PURPOSE:
Darkens an image buffer.
SYNTAX:
DARKEN <amount> <inbuf> [outbuf]
DESCRIPTION:
DARKEN will decrease the brightness of <inbuf> by
<amount>. <amount> is a component value, so the range
is 1-255.
NOTES:
If [outbuf] is not given, then <inbuf> contains the
result.
SHORTCUT:
DARK
SEE ALSO:
BRIGHTEN
Page 32
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
DIVIDE
PURPOSE:
Divide the contents of two image buffers.
SYNTAX:
DIVIDE <buf1> <buf2> [outbuf]
DESCRIPTION:
DIVIDE will divide, pixel by pixel each of the red,
blue and green components of <buf1> and <buf2> and
place the result into [outbuf].
NOTES:
If [outbuf] is not given, then <buf1> contains the
result.
Upon dividing the components, if a component if <buf2>
is zero, then the result is automatically zero, since a
divide by zero is impossible.
SHORTCUT:
DIV
SEE ALSO:
ADD SUBTRACT MULTIPLY DIVIDE
Page 33
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
ECHO
PURPOSE:
ECHO is used to display text during the execution of an
CImage batch file.
SYNTAX:
ECHO ON
-or-
ECHO OFF
-or-
ECHO <string>
DESCRIPTION:
Normally as a batch file is running, the commands are
"echoed" to the screen as they are executed. This can
be turned off by adding the command ECHO OFF to the
batch file. Once it has been turned off, the ECHO ON
can turn it back on. The ECHO setting is reset to ON
when all batch files have completed processing.
If ECHO is followed by <string>, then the string is
ECHOed to the screen.
NOTES:
An "@" character placed in front of a command line in a
batch file prevents that line from echoing.
An ECHO. will echo a blank line to the screen.
Currently, ECHO will echo all text as upper-case only.
SHORTCUT:
None.
SEE ALSO:
BATCH ASK IF GOTO : REM PAUSE
Page 34
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
EXIT
PURPOSE:
EXIT will exit from the CImage command processor shell
to the previous level if one exists, otherwise, you are
exited to the DOS command prompt.
SYNTAX:
Exit
DESCRIPTION:
Once running CImage, you can run different levels of
the CImage command pro cessor. This is done by simply
running CImage from within itself. Once running the
second level, you can exit to the previous level by
typing EXIT.
NOTES:
None.
SHORTCUT:
Q -or- QUIT
SEE ALSO:
None.
Page 35
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
FADE
PURPOSE:
Creates a test image that fades from light to dark.
SYNTAX:
FADE <xres> <yres> <red> <green> <blue> [outbuf] [dir]
DESCRIPTION:
FADE will create a 256-color image that fades from
light to dark the elements of <red>, <green> and <blue>
in the direction of [dir], and place it into [outbuf]
at a resolution of <xres> by <yres>.
Each of the <red>, <green> and <blue> component values
are entered as a '0' or a non-zero value. Any '1' must
be placed in this value to cause FADE to add that color
to the fade. A fade of 1 0 0 will create a fade of
only shades of red.
Use [dir] to denote which direction to create the fade
image. Valid values are U, D, L, R, for Up, Down,
Left, Right respectively. [dir] points to the dark
side of the image (Up would start at the top as dark
and work down to light).
NOTES:
If [outbuf] is not given, then FADE will create the
first available buffer.
If [dir] is not given, then FADE will use 'D' (down).
FADE was originally a test image for the developer, but
was left in for users. One use might be to create a
fade, and subtract that from another image for a simple
effect.
The "Loaded as file name" is set to FADE.TGA
SHORTCUT:
None.
SEE ALSO:
None.
Page 36
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
FILL
PURPOSE:
Fills a buffer of a given color.
SYNTAX:
FILL <xres> <yres> <red> <green> <blue> [outbuf]
DESCRIPTION:
FILL will create an image of resolution <xres> by
<yres> filled with the color specified by <red>,
<green> and <blue> and place it into [outbuf].
NOTES:
If [outbuf] is not given, then FILL will create the
first available buffer.
The "Loaded as file name" is set to FILLED.TGA
SHORTCUT:
None.
SEE ALSO:
None.
Page 37
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
FILTERFILE
PURPOSE:
Sets the filename used for the convolution filters.
SYNTAX:
FILTERFILE [filename]
DESCRIPTION:
FILTERFILE sets the filename that is used by the CONV
and LC commands for locating and performing user-
defined convolution filters. See the CONV command for
more information on performing convolution filters.
The default name is FILTERS.FLT, and must be located
in, first, the current directory. If the filter file
is not found there, then CImage will search for the
file in the directory from which it was originally run.
NOTES:
If [filename] is not given, then the FILTERFILE will
display the current filename.
SHORTCUT:
FFILE
SEE ALSO:
CONV LC
Page 38
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
FLIP
PURPOSE:
Flip an image buffer top to bottom or left to right.
SYNTAX:
FLIP <dir> <inbuf> [outbuf]
DESCRIPTION:
FLIP will flip the buffer <inbuf> in the direction
specified by <dir> and place the result into [outbuf].
Valid values for <dir> are U, D, L, R for Up, Down,
Left, Right, respectively.
NOTES:
If [outbuf] is not given, then the result is placed
into <inbuf>.
There is no difference between Up and Down. There is
also no difference between Left and Right.
SHORTCUT:
None.
SEE ALSO:
None.
Page 39
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
FREE
PURPOSE:
Release a buffer, freeing up the memory that it uses.
SYNTAX:
FREE <buf>
-or-
FREE ALL
DESCRIPTION:
FREE will free the memory used by <buf>. If <buf> is
"ALL", then all buffers will be freed.
NOTES:
FREE will not ask to verify, even if you use "FREE ALL"
SHORTCUT:
None.
SEE ALSO:
None.
Page 40
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
GAMMA
PURPOSE:
Perform gamma correction.
SYNTAX:
GAMMA <inbuf> [outbuf]
DESCRIPTION:
GAMMA will correct the gamma of <inbuf> and place the
result into [outbuf].
It is usually safe to assume that black is 0 and white
is 255. How ever, it is not necessarily true that 128
appears exactly as a medium grey (which would mean that
color intensity output is linear). On most computers,
color intensity output is not linear, and must be
adjusted accordingly. The GAMMA command will correct
this on images and make it appear that the image is
being displayed with linear color intensity output.
The GAMMA function uses the value set by the GAMV
command to set the amount of gamma correction.
NOTES:
If [outbuf] is not given, then the result is placed
into <inbuf>
SHORTCUT:
GAMM
SEE ALSO:
GAMV
Page 41
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
GAMV
PURPOSE:
Set the gamma correction level.
SYNTAX:
GAMV [value]
DESCRIPTION:
GAMV will set the gamma correction level for the GAMMA
command. See the GAMMA command for more detailed
information on gamma correction.
NOTES:
If [value] is not given, then the current value will be
displayed.
The default value for GAMV is 0.6.
SHORTCUT:
None.
SEE ALSO:
GAMMA
Page 42
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
GOTO
PURPOSE:
Alter the program flow within an CImage batch file.
SYNTAX:
GOTO <label>
DESCRIPTION:
The GOTO command will cause the batch file to stop
processing, locate <label> within the batch file, and
continue processing there. Labels are designated by a
':'. See the ':' for more detailed information on
labels.
NOTES:
The GOTO command is meant to be used within batch files
only.
SHORTCUT:
None.
SEE ALSO:
BATCH ASK IF : REM PAUSE ECHO
Page 43
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
GREYSCALE
PURPOSE:
Convert the current image into a greyscale image.
SYNTAX:
GREYSCALE <inbuf> [outbuf]
DESCRIPTION:
GREYSCALE will convert <inbuf> to greyscale and place
the results into [outbuf].
Converting an image to grayscale is very simple. Each
pixel's red, green and blue components are compared
against each other to find the largest (brightest)
value, then all three components are set to this value.
NOTES:
If [outbuf] is not given, then the result is placed
into <inbuf>
There is no command to convert from greyscale to color,
since a greyscale image does not contain enough
information to perform such a task.
SHORTCUT:
GREY
SEE ALSO:
None.
Page 44
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
IF
PURPOSE:
The IF and IFNOT commands allow conditional execution
of commands based on the results of a logical
condition. When the condition is true, then CImage
executes the <command>; otherwise, CImage will ignore
the command.
SYNTAX:
IF ERRORLEVEL <number> <command>
-or-
IFNOT ERRORLEVEL <number> <command>
-or-
IF <string1> == <string2> <command>
-or-
IFNOT <string1> == <string2> <command>
-or-
IF EXIST <filename> <command>
-or-
IFNOT EXIST <filename> <command>
DESCRIPTION:
The conditions are described as follows:
ERRORLEVEL True if, and only if, the previous
command executed had an exit code equal
to <number>.
<string1> == <string2> True if, and only if, <string1>
is equal to <string2>. The strings
must not contain spaces.
EXIST True if, and only if, the <filename>
exists in the current directory.
NOTES:
Currently, the only CImage command that returns an exit
code is the ASK command. DOS command exit codes are
currently not supported.
SHORTCUT:
None.
SEE ALSO:
BATCH ASK GOTO : REM PAUSE ECHO
Page 45
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
LB
PURPOSE:
List the currently allocated image buffers.
SYNTAX:
LB
DESCRIPTION:
LB will list the current information about all
currently allocated buffers:
Buffer number
Loaded file name
Loaded file type
Last saved name
Last saved file type
Resolution
NOTES:
None.
SHORTCUT:
None.
SEE ALSO:
LOAD SAVE MERGE
Page 46
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
LC
PURPOSE:
List all convolution filters contained in the filter
file (defined by the FILTERFILE command; default
filename is FILTERS.FLT).
SYNTAX:
LC
DESCRIPTION:
LC Will list all the convolution filters in the filter
file sorted by grid size (3, 5 or 7).
NOTES:
CImage will search for the filter file in the following
order:
1. The current directory
2. The default CImage directory (where CIMAGE.EXE is
stored)
SHORTCUT:
None.
SEE ALSO:
CONV FILTERFILE
Page 47
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
LOAD
PURPOSE:
LOAD will load images into memory.
SYNTAX:
LOAD <filename> [buffer]
DESCRIPTION:
LOAD will load <filename> into [buffer].
NOTES:
If [buffer] is not given, then LOAD will create the
first available buffer.
Currently, LOAD does not interrogate the file contents
to decide what type of image file to load. The file's
extension is used to decide the file's type. Once the
file type is obtained from the extension, LOAD will
verify the file is indeed the proper file type.
Current supported file types are:
IMG - VIVID/BOB format
GIF - GIF87a (and GIF89a files that are compatible)
TGA - Only type 2, uncompressed
BMP - All versions (Windows, and OS/2)
IPI - CImage's internal format (See HELP IPI for
details on format)
SHORTCUT:
None.
SEE ALSO:
SAVE MERGE LB
Page 48
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
MACRO
PURPOSE:
Creates a macro.
SYNTAX:
MACRO [macro] [cmd-line]
DESCRIPTION:
MACRO will define [macro] to be [command-line]
Macros are shortcuts. You can define almost any
command-line to a macro.
Say you define "P" to be "PLASMA 640 480 3.3". Then,
every time you type a "P" (followed by [RETURN]) on the
command line, CImage will interpret it as: "PLASMA 640
480 3.3" (which will create a plasma image the size of
640x480 with the grain factor of 3.3, and place it into
the first available buffer).
Macros can also be inserted into a command-line
anywhere. For example, you could use "plasma 640 480
PVAL" where PVAL has been defined as "3.3". Macros may
also reference themselves. "P" may be defined as
"PLASMA 640 480 PVAL" and if PVAL has been defined as
"3.3", then that line "P" is interpreted as "PLASMA 640
480 3.3".
NOTES:
Macros may reference environment variables, but
environment variables may not reference macros.
If [cmd-line] is not given, then the [macro] will be
removed from the macro list.
If [macro] and [cmd-line] are not given, then MACRO
will list all currently defined macros.
[cmd-line] may contain spaces.
Since a semicolon on the CImage command line is used to
separate multiple commands, you need to use the carrot
(^) character where semicolons are to be placed. These
semicolons will not, however, become separate command
lines within a single macro, they will be interpreted
as one command line.
Macros must be separated from other words on the
command line they are to be used in by a space.
SHORTCUT:
None.
Page 49
The Complete Image -- Copyright 1993, Paul D. Nettle
SEE ALSO:
SET
Page 50
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
MEM
PURPOSE:
Display the current status of memory.
SYNTAX:
MEM
DESCRIPTION:
MEM will display the following information:
1. Largest available block of memory
2. Size of paging/file partition
The "Largest available block of memory" is quite self-
explanatory. This includes all virtual memory. The
"Size of paging/file partition" is the size of the
virtual memory portion of available memory.
NOTES:
None.
SHORTCUT:
None.
SEE ALSO:
MEMORY
Page 51
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
MERGE
PURPOSE:
Merges three color separated images into one full color
image.
SYNTAX:
MERGE <redfile> <bluefile> <greenfile> [outbuf]
DESCRIPTION:
MERGE performs three LOADs; one LOAD for each of the
different files in <redfile>, <bluefile> and
<greenfile> with the exception that MERGE gets the red
element of the image from <redfile>, the blue element
from <bluefile> and the green element from <greenfile>.
These are then merged into a single image and placed
into [outbuf].
This is useful for people who have monochrome hand
scanners. It is possible to actually digitize a color
image with a monochrome hand scanner. Scan an image
three times using a red filter the first time, a green
filter the second time, and a blue filter the last
time. Use your hand scanner's software to align the
three images, and import them into CImage using the
MERGE command. What you will get is a full-color image
in [outbuf].
NOTES:
If [outbuf] is not given, then MERGE will create the
first available buffer.
The three files in MERGE may be different file types,
however, they must all have the same resolution.
SHORTCUT:
None.
SEE ALSO:
LOAD SAVE LB OVERLAY
Page 52
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
MULTIPLY
PURPOSE:
Multiply the contents of two image buffers.
SYNTAX:
MULTIPLY <buf1> <buf2> [outbuf]
DESCRIPTION:
MULTIPLY will multiply, pixel by pixel each of the red,
blue and green components of <buf1> and <buf2> and
place the result into [outbuf].
NOTES:
If [outbuf] is not given, then <buf1> contains the
result.
Upon multiplying the components, if the two components
multiplied are greater than 255, then the component
value is clipped to 255.
SHORTCUT:
MULT
SEE ALSO:
ADD SUBTRACT DIVIDE
Page 53
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
NEGATE
PURPOSE:
Create a photo negative of an image.
SYNTAX:
NEGATE <inbuf> [outbuf]
DESCRIPTION:
Negate reads the value of each color element for each
pixel, and subtracts it from 255. Placing the
resulting image into [outbuf].
The effect is an intensity reversal (or "photo
negative"), in which black becomes white, and white
becomes black.
NOTES:
If [outbuf] is not given, then <inbuf> contains the
result.
SHORTCUT:
NEG
SEE ALSO:
None.
Page 54
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
NOISE
PURPOSE:
Add random noise to an image.
SYNTAX:
NOISE <amount> <inbuf> [outbuf]
DESCRIPTION:
Computer generated images often look to "perfect" and
therefore, unrealistic. NOISE can be used to help this
matter.
NOISE will randomly add n <amount> to each individual
pixel in <inbuf>, and place the result into [outbuf].
A useful value for <amount> would be 5-15.
NOTES:
Valid range for <amount> is 1-255.
If [outbuf] is not given, then <inbuf> contains the
result.
If the addition or subtraction of <amount> takes the
result above 255 or below 0, then the value is clipped
to 0 or 255, respectively.
SHORTCUT:
NOIS
SEE ALSO:
None.
Page 55
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
NORMALIZE
PURPOSE:
Perform a histogram normalization on an image.
SYNTAX:
NORMALIZE <inbuf> [outbuf]
DESCRIPTION:
NORMALIZE performs a histogram normalization (or
contrast enhancement) on <inbuf>.
A histogram normalization is quite a simple task. A
normalization finds the darkest color, and maps it to
zero, then it finds the brightest color and maps it to
white. This is useful for adding contrast to images,
like very hazy images. Normalization can actually turn
a "foggy" picture into a "sunny day" picture.
NOTES:
If [outbuf] is not given, then <inbuf> contains the
result.
SHORTCUT:
NORM
SEE ALSO:
None.
Page 56
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
OVERLAY
PURPOSE:
Performs a color selectable overlay of one image onto
another image.
SYNTAX:
OVERLAY <buf1> <buf2> <low> <high> [outbuf]
DESCRIPTION:
OVERLAY will overlay each pixel from <buf1> that is
greater than or equal to <low> and less than or equal
to <high> onto it's corresponding pixel in <buf2>. The
resulting image is then placed into [outbuf].
The comparison of <low> and <high> against pixels in
<buf1> are done on after monochrome conversion. CImage
first converts <buf1> to mono to compare against <low>
and <high> and if the monochrome value is inside the
range, then the COLOR value is placed into [outbuf].
OVERLAY is useful for overlaying an image of an
airplane (with a black background) onto a mountain
scene.
NOTES:
The valid range for <low> and <high> is 0-255.
If [outbuf] is not given, then OVERLAY will create the
first available buffer.
The "Loaded as file name" is set to OVERLAY.TGA
SHORTCUT:
OVER
SEE ALSO:
MERGE
Page 57
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
PAUSE
PURPOSE:
PAUSE suspends the operation of a CImage Batch file.
SYNTAX:
PAUSE <string>
-or-
PAUSE
DESCRIPTION:
If <string> exists, then <string> is printed,
otherwise, PAUSE will display "Press any key to
continue...". PAUSE will then wait for a key-press to
continue.
NOTES:
PAUSE is often used to break out of batch files by
allowing the user to press the break key [CTRL-C] or
[CTRL-BREAK]. If the break key sequence is pressed
during a PAUSE command, CImage will not ask to break
out of the batch file until a key is pressed. This is
the only point in batch file processing when CImage
will wait for a key to ask to stop processing the batch
file.
Currently, PAUSE echoes all text as upper-case only.
SHORTCUT:
None.
SEE ALSO:
BATCH ASK IF GOTO : REM PAUSE ECHO
Page 58
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
PERCENT
PURPOSE:
PERCENT is used to enable/disable the percentages that
are printed as CImage processes different commands that
may take some time.
SYNTAX:
PERCENT ON
-or-
PERCENT OFF
DESCRIPTION:
PERCENT ON will enable the percentages, and PERCENT OFF
will turn them off. The default is ON.
Turning the percents off will speed up the time it
takes to execute commands. This is because screen
displays are rather slow.
NOTES:
The ONLY command that takes some time to process that
does not display percents is the PLASMA command.
SHORTCUT:
None.
SEE ALSO:
None.
Page 59
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
PIX
PURPOSE:
Pixellize an image.
SYNTAX:
PIX <xres> <yres> <inbuf> [outbuf]
DESCRIPTION:
PIX will group pixels of <xres> by <yres>, average all
the pixel values in the group, and replace those pixels
with the averaged color. The result of which is an
image that appears as though the resolution has been
lowered and the pixels stretched to keep the same image
size.
PIX does NOT alter the image resolution. An image of
100x100 being pixelized with the values of 5 (for
<xres>) and 5 (for <yres>) will generate an image that
appears to have a resolution of 20x20, however, the
resolution is actually 100x100.
NOTES:
If [outbuf] is not given, then <inbuf> contains the
result.
SHORTCUT:
None.
SEE ALSO:
None.
Page 60
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
PLASMA
PURPOSE:
Creates a "plasma" type fractal image.
SYNTAX:
PLASMA <xres> <yres> <grain> [outbuf]
DESCRIPTION:
PLASMA will create a "plasma" fractal image of <xres>
by <yres> using <grain> and place the result into
[outbuf].
Plasma fractals look like clouds. The larger <grain>
is, the denser the clouds. A typical value for plasma
is 3.
NOTES:
Valid range for <grain> is 0.001 - 100.0.
If [outbuf] is not given, then PLASMA will create the
first available buffer.
PLASMA is the only command that does not display
percentages as it executes.
The "Loaded as file name" is set to PLASMA.TGA
SHORTCUT:
None.
SEE ALSO:
None.
Page 61
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
PMOD
PURPOSE:
Sets the prompt modifier.
SYNTAX:
PMOD [modifier]
DESCRIPTION:
The prompt modifier is displayed to the left of the
prompt so that the user can tell when CImage is
running. PMOD will allow the user to change the prompt
modifier.
NOTES:
If [modifier] is not given, then PMOD will display the
current prompt modifier.
SHORTCUT:
None.
SEE ALSO:
None.
Page 62
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
REM
PURPOSE:
During the execution of an CImage batch file, REM
displays the remarks that are on the same line as the
REM command in that batch file.
SYNTAX:
REM [comment]
DESCRIPTION:
The [comment] is not executed, rather it is used for
making notes inside batch files to it readers from it's
author. It can also be used to display information to
the screen as a batch file executes.
NOTES:
If the ECHO is off, then the REM command line is not
displayed.
SHORTCUT:
None.
SEE ALSO:
BATCH ASK IF GOTO : PAUSE ECHO
Page 63
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
SAVE
PURPOSE:
Save an image buffer.
SYNTAX:
SAVE <buff> [filename]
DESCRIPTION:
SAVE will save <buff> to [filename].
NOTES:
If [filename] is not given, then SAVE will get the name
from the last saved name for that buffer (see the LC
command for more information on looking for the last
saved name). If there is no last saved name, then SAVE
will save the buffer under the name that it was
originally loaded (or created).
Files are overwritten without verification.
The file's extension is used to decide the file's type.
Once the file type is obtained from the extension, SAVE
will create the file, and save it accordingly.
Current supported file types are:
IMG - VIVID/BOB format
GIF - GIF87a
TGA - Only type 2, uncompressed
BMP - All versions (Windows)
IPI - CImage's internal format (See HELP IPI for
details on format)
Also note that all files written out by CImage are 24-
bit, non-compressed images (except .GIF files, which
are 8-bit compressed images), and Targa files (.TGA)
are written in Top-down format only.
SHORTCUT:
None.
SEE ALSO:
LOAD MERGE LB
Page 64
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
SET
PURPOSE:
Set an CImage internal environment variable.
SYNTAX:
SET [var] [value]
DESCRIPTION:
SET will define the CImage internal environment
variable [var] to be [value]. Environment variables
are similar to macros except that macros must be
separated from other words on the command line by a
space, and environment variables don't, however,
environment variables require a '%' sign on either side
of them for them to be resolved properly.
Environment variables are usually used as settings
(like the path to your images) to be inserted into
command line. You can define almost any string to a
variable. These environment variable are accessed as
%<var>%.
If you define "PTH" to be "C:\IMAGES\". Then, every
time you type "%PTH%" on the command line, CImage will
interpret it as: "C:\IMAGES\"
Say you type the line: "LOAD %PTH%PICTURE.GIF". This
line will get interpreted as "LOAD
C:\IMAGES\PICTURE.GIF".
Like macros, environment variables may also reference
each other.
NOTES:
Macros may reference environment variables, but
environment variables may not reference macros.
If [value] is not given, then the [var] will be removed
from the environment variable table.
If [var] and [value] are not given, then SET will list
all currently defined environment variables.
SHORTCUT:
None.
SEE ALSO:
MACRO
Page 65
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
SHOW
PURPOSE:
Display an image buffer.
SYNTAX:
SHOW [buf]
DESCRIPTION:
SHOW will display, in graphics mode, the image in
[buf].
If color reduction is needed, then SHOW will perform
the color reduction before displaying the image.
SHOW will use the information in VMODE to pick what
type of display mode to enter to show [buf]. See the
VMODE command for more information on the different
graphics configurations available from CImage.
Once the image is displayed, SHOW will beep, and any
key will return the user to the text mode command
prompt.
NOTES:
If [buf] is not given, then SHOW will show the first
available buffer (if one exists).
The modes 11-13, 15 and 17 may take a few seconds once
they enter graphics mode to begin displaying the image
to finalize color co ordination. This is not true for
modes with 32K colors or more.
VESA is the preferred graphics configuration to run.
CImage does not support modes with less than 256
colors.
SHORTCUT:
None.
SEE ALSO:
VESAINFO BIOSINFO VMODE VCOLORS CRES
Page 66
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
SUBTRACT
PURPOSE:
Subtract the contents of two image buffers.
SYNTAX:
SUBTRACT <buf1> <buf2> [outbuf]
DESCRIPTION:
SUBTRACT will subtract, pixel by pixel, each of the
red, blue and green components of <buf1> and <buf2> and
place the result into [outbuf].
NOTES:
If [outbuf] is not given, then <buf1> contains the
result.
Upon subtracting the components, if the two components
subtracted are less than 0, then the component value is
clipped to 0.
SHORTCUT:
SUB
SEE ALSO:
ADD MULTIPLY DIVIDE
Page 67
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
TERRAIN
PURPOSE:
Generate a BOB (ray tracer) compatible terrain map.
SYNTAX:
TERRAIN <buff> <range> <filename> <low> [color]
DESCRIPTION:
TERRAIN will generate a .B file for the ray tracer BOB
that contains a terrain map of triangles for the
current image using the intensity of each pixel for the
height of the triangle points.
TERRAIN scans <buff>, and at each pixel it scales
[color] to <range>, then compares the value to <low>,
which is the "water level", and if the value is less
than <low>, the value gets clipped to <low>. The
triangle is then written to <filename>.
This command was meant to work primarily with the
PLASMA images for terrain generation, however, it can
be used with any image.
NOTES:
<range> must be greater than 0. Valid range for <low>
is 0 (flat) to 255 (full height). Valid values for
[color] are R, G, B or M. These specify to use the Red
element, Blue element, Green element or the pixel
converted to Monochrome for the pixel value (triangle
height).
If [color] is not given, then TERRAIN will use
Monochrome conversion.
Images of 640x480 can create VERY LARGE output files.
SHORTCUT:
TERR
SEE ALSO:
None.
Page 68
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
VCOLORS
PURPOSE:
Set the number of colors that the video card can
display.
SYNTAX:
VCOLORS [val]
DESCRIPTION:
VCOLORS tells CImage how many colors the video card can
display simultaneously. CImage needs to know how many
colors the video card can display so that it may
properly reduce the internal 24-bit images to [val]
colors for displaying.
This value is set by the VESAINFO, VMODE, and BIOSINFO
functions.
NOTES:
If [val] is not given, then VCOLORS will display the
current setting.
CImage does not support modes with less than 256
colors.
SHORTCUT:
None.
SEE ALSO:
VESAINFO BIOSINFO VMODE CRES SHOW
Page 69
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
VESAINFO
PURPOSE:
Set or display the VESA graphics configuration.
SYNTAX:
VESAINFO [mode]
DESCRIPTION:
VESAINFO will set the current VESA configuration to be
used for displaying image buffers using the SHOW
command.
Users must also perform a "VMODE VESA" to enable the
VESA mode for displaying image buffers. See the VMODE
command for more information on setting the mode.
VESA is a great standard for super-VGA displays.
CImage's developers support VESA and hopes that you
will use this configuration above BIOS or any of the
built-in modes.
NOTES:
The VESA drivers are not included with CImage. These
drivers can be obtained from you video card
manufacturer if they were not included with your card
upon purchase.
If [mode] is not given, then VESAINFO will display the
following information (this is from my system, VESA
version 1.2 running a Diamond Speed Star 24X):
Available modes are marked with an asterisk (*):
6Ah - 800 x 600 16 colors
* 100h - 640 x 400 256 colors
* 101h - 640 x 480 256 colors
* 102h - 800 x 600 16 colors
* 103h - 800 x 600 256 colors
* 104h - 1024 x 768 16 colors
* 105h - 1024 x 768 256 colors
* 106h - 1280 x 1024 16 colors
107h - 1280 x 1024 256 colors
108h - TEXT MODE...unusable
* 109h - TEXT MODE...unusable
* 10Ah - TEXT MODE...unusable
* 10Bh - TEXT MODE...unusable
10Ch - TEXT MODE...unusable
* 10Dh - 320 x 200 32K colors
10Eh - 320 x 200 64K colors
10Fh - 320 x 200 16M colors
* 110h - 640 x 480 32K colors
111h - 640 x 480 64K colors
Page 70
The Complete Image -- Copyright 1993, Paul D. Nettle
112h - 640 x 480 16M colors
* 113h - 800 x 600 32K colors
114h - 800 x 600 64K colors
115h - 800 x 600 16M colors
116h - 1024 x 768 32K colors
117h - 1024 x 768 64K colors
118h - 1024 x 768 16M colors
119h - 1280 x 1024 32K colors
11Ah - 1280 x 1024 64K colors
11Bh - 1280 x 1024 16M colors
Current Settings:
VESA version: 1.2
OEM name: Western Digital Inc V1.2
VESA video mode: 113h (275)
Resolution: 800x600
Displayable colors: 32768 (15 Bits per pixel)
Mode attributes: [Supported] [No BIOS
Output] [Color]
[Graphics]
Window A attributes: [Supported] [Readable]
[Writable]
Window B attributes: [Not Supported]
Granularity/Win size: 4K/64K
Window segments A/B: A000h/A800h
Window pos. function: 0623:05EEh
Bytes per scanline: 1600
Character size: 0x0
# of memory planes: 1
Number of banks: 1
Memory model type: YUV
Bank size: 0K
Image pages: 1
Red size/field pos: 5/10
Green size/field pos: 5/5
Blue size/field pos: 5/0
Direct color mode: [Color ramp fixed] [Bits
are usable]
VESA is the preferred graphics configuration to run.
CImage does not support modes with less than 256
colors.
SHORTCUT:
VESA
SEE ALSO:
BIOSINFO VMODE VCOLORS CRES SHOW
Page 71
The Complete Image -- Copyright 1993, Paul D. Nettle
COMMAND:
VMODE
PURPOSE:
Sets the video mode to be used for displaying image
buffers.
SYNTAX:
VMODE [mode]
DESCRIPTION:
VMODE tells CImage what mode to use for displaying
image buffers. Currently, the following modes are
supported:
320 x 200, 256 color
640 x 400, 256 color
640 x 480, 256 color
800 x 600, 256 color
1024 x 768, 256 color
BIOS mode
VESA mode
If BIOS is selected, then CImage uses the current BIOS
information for it's display mode. See the BIOSINFO
command for more information on BIOS graphics
configuration.
If VESA is selected, then CImage uses the current VESA
information for it's display mode. See the VESAINFO
command for more information on VESA graphics
configuration.
NOTES:
If [mode] is not given, then VMODE will display the
current mode's information, and the available modes.
Valid values for [val] are:
11.......320 x 200, 256 color
12.......640 x 400, 256 color
13.......640 x 480, 256 color
15.......800 x 600, 256 color
17......1024 x 768, 256 color
BIOS....BIOS mode
VESA....VESA mode
VESA is the preferred graphics configuration to run.
CImage does not support modes with less than 256
colors.
SHORTCUT:
None.
Page 72
The Complete Image -- Copyright 1993, Paul D. Nettle
SEE ALSO:
VESAINFO BIOSINFO VCOLORS CRES SHOW
Page 73
The Complete Image -- Copyright 1993, Paul D. Nettle
FUTURE ENHANCEMENTS
o Add ERRORLEVEL to internal CImage commands where
needed.
o FOR command
o Image Functions:
Morphing (that's REAL MORPHING, not a fake)
Resize (interpolate)
Image combination (average of x number of images)
Rotate (on 90 degree boundaries)
o More Image Filters!
Sobel (strength & orientation)
Robert's edge (accurate & fast)
o Add other file formats:
Targa (versions of the Targa file that are not
currently supported)
TIFF
Other versions of GIF
Page 74
The Complete Image -- Copyright 1993, Paul D. Nettle
CONTACTING CUSTOMER SUPPORT
I'm available in the evenings, I have the standard 9-5 job
(eastern time). If you need to reach me during the day, you
can do so by calling and leaving a message. I call in to my
voice mail about three times per day, however, on hectic
days, it's not so easy, and I may not get any messages at
all.
Tech Support is available for all registered users for one
full year following the purchase. For non-registered users
(and registered users over one year), tech support is not
officially available. But if I'm not swamped, I'll try to
get back to you. Registered users over one year have
priority over non-registered users. So, please state your
status. It can be verified on computer.
To contact me, just call (313) 941-9223.
You may also mail your support questions to:
Paul D. Nettle
9668 Washington St.
Romulus, MI 48174
My phone number and address are for support, comments,
suggestions, questions, registration information, and of
course, orders.
Page 75
The Complete Image -- Copyright 1993, Paul D. Nettle
ORDERING INFORMATION
To order a copy of The Complete Image, just print out the
REGISTR.FRM, fill it in, and send it with you check or money
order for $35.00.
What you will get when you register:
o The registered version of CImage on disk (your choice
of disk format -- 1.2M or 1.4M).
o A printed manual.
o The next update of CImage -- free of charge (Including
printed documentation).
o Peace of mind.
Differences between non-registered and registered users:
o Registered versions don't display the registration
notice upon startup of CImage.
o Registered versions are marked with an "r" after the
version number in the title rather than a "u".
o Registered users are allowed free technical support
priority via phone or by mail. Non-registered users
are given no official technical support. (see
Contacting Customer Support).
Page 76